import axios from 'axios'
import { ElMessage } from 'element-plus'
import config from '@/config'
// Set config defaults when creating the instance
console.log(config.baseApi,'config.baseApi1111111111111111111')
const service = axios.create({
    baseURL:config.baseApi
  });
//   // baseURL: 'https://api.example.com'

// 添加请求拦截器
service.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    return config;
  }, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  });

// 添加响应拦截器
service.interceptors.response.use( (res) => {
    // 对响应数据做点什么
    const { code,data,msg } = res.data
    if (code === 200) {
        return data
    } else {
      const NETWORE_ERROR = '网络错误....'
      ElMessage.error(msg || NETWORE_ERROR)
      return  Promise.reject(msg || NETWORE_ERROR);
    }
  });
function request(options) {
    options.method = options.method  || "get"
    // 关于get请求参数的调整
    if(options.method.toLowerCase() === 'get'){
      options.params = options.data
    }
    // 对mock的开关做处理
    let isMock = config.isMock
    if(typeof options.mock !== 'undefined') {
      isMock = options.mock
    }
    // 针对环境做一个处理
    if(config.env === 'prod'){
      // 不能用mock
      service.defaults.baseURL = config.baseApi
    } else {
      service.defaults.baseURL = isMock ? config.mockApi : config.baseApi
    }
    return service(options)
}
  export default request